1. Technical Field of the Invention
The invention relates generally to encoding and/or decoding of signals within and/or between various devices; and, more particularly, it relates to employing cyclic redundancy checks (CRCs) in accordance with such encoding and decoding.
2. Description of Related Art
Data communication systems have been under continual development for many years. One such type of communication system that has been of significant interest lately is a communication system that employs iterative error correction codes. Communications systems with iterative codes are often able to achieve lower bit error rates (BER) than alternative codes for a given signal to noise ratio (SNR).
A continual and primary directive in this area of development has been to try continually to lower the SNR required to achieve a given BER within a communication system. The ideal goal has been to try to reach Shannon's limit in a communication channel. Shannon's limit may be viewed as being the data rate to be used in a communication channel, having a particular SNR, that achieves error free transmission through the communication channel. In other words, the Shannon limit is the theoretical bound for channel capacity for a given modulation and code rate.
As is known, many varieties of memory storage devices (e.g. hard disk drives (HDDs)), such as magnetic disk drives are used to provide data storage for a host device, either directly, or through a network such as a storage area network (SAN) or network attached storage (NAS). Such a memory storage system (e.g., a HDD) can itself be viewed as a communication system in which information is encoded and provided via a communication channel to a storage media; the reverse direction of communication is also performed in a HDD in which data is read from the media and passed through the communication channel (e.g., sometimes referred to as a read channel in the HDD context) at which point it is decoded to makes estimates of the information that is read.
Typical host devices include stand alone computer systems such as a desktop or laptop computer, enterprise storage devices such as servers, storage arrays such as a redundant array of independent disks (RAID) arrays, storage routers, storage switches and storage directors, and other consumer devices such as video game systems and digital video recorders. These devices provide high storage capacity in a cost effective manner.
Some communication systems, including HDDs, employ error detecting and/or correcting codes to deal with errors that may be incurred within signals that are transmitted within a communication system. In the HDD context, such undesirable errors can be incurred during the write and/or read processes to and from the storage media of the HDD. In some applications, the size of blocks, frames, and/or sector sizes that are processed and employed within a first communication device at one end of a communication channel can differ from the size of blocks, frames, and/or sector sizes that are processed and employed within a second communication device at another end of the communication channel. In the HDD context, sometimes the size of blocks, frames, and/or sector sizes that are processed and employed within a host device at one end of the read channel can differ from the size of blocks, frames, and/or sector sizes that are processed and employed within the actual HDD system (including the size of blocks, frames, and/or sector sizes that are stored on the storage media of the HDD).